/*
 * Registro.h
 *
 *  Created on: Sep 20, 2010
 *      Author: nicoabie
 */

#ifndef REGISTRO_H_
#define REGISTRO_H_

#define CANTIDAD_BYTES_TAMANIO_DATO_Y_KEY  4

#include <string.h>
#include <iostream>
#include "Common/Utils.h"
#include "stdlib.h"
#include "stdio.h"

using namespace std;

class Registro {

public:
	string 	key;
	string 	dato;
	int 	tamanioKey;
	int 	tamanioDato;

public:

	Registro();

	Registro(string key, string dato);

	Registro(string* stream);

	int compararCon(Registro* otroRegistro);

	string getDato() const;

	string getKey() const;

	/*
	 * retorna el tamanio que ocupa un registro en el
	 * archivo binario
	 */
	int getTamanio();


	/*
	 * tamanioKey, key, tamanioDato, dato
	 */
	string toString();

	/*
	 * tamanioKey, key, tamanioDato, dato
	 */
	void fromString(string* stream);


	virtual ~Registro();
};

#endif /* REGISTRO_H_ */
